home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #9 / Amiga Plus CD - 2004 - No. 09.iso / amigaplus / tools / amigaos4_only / ifxlite / imagefx3 / rexx / fasttimelapse.ifx < prev    next >
Text File  |  2004-08-03  |  2KB  |  93 lines

  1. /*
  2.  * $VER: FastTimeLapse 1.00.00 (24.9.92)
  3.  *
  4.  * Arexx program for the ImageFX image processing system.
  5.  * Written by Thomas Krehbiel
  6.  *
  7.  * This program will capture a frame from any of the framegrabber
  8.  * modules at intervals, render and save the frames out to a
  9.  * 320x200 animation.  This simply uses the Amiga preview
  10.  * to render frames as quickly as possible.
  11.  *
  12.  */
  13.  
  14. OPTIONS RESULTS
  15.  
  16. /*
  17.  * We need this to ensure the animation is actually closed at the
  18.  * end, we will get signalled when the user aborts us:
  19.  */
  20. SIGNAL ON BREAK_C
  21.  
  22. /*
  23.  * Make sure we have a framegrabber-type scanner module.
  24.  */
  25. GetScanner
  26. IF (result ~= 'FrameGrabber') & (result ~= 'FrameGrabber256') & (result ~= 'IVFG') THEN DO
  27.    RequestNotify 'This program requires a framegrabber module.'
  28.    SetScanner
  29.    IF rc ~= 0 THEN EXIT
  30.    END
  31.  
  32.  
  33. /*
  34.  * And make sure we have the appropriate Preview module.
  35.  */
  36. GetPreview ; oldpreview = result
  37. IF result ~= 'Amiga' THEN DO
  38.    SetPreview 'Amiga'
  39.    IF rc ~= 0 THEN EXIT
  40.    END
  41.  
  42. /*
  43.  * Get time lapse interval in seconds.  Keep in mind that it may
  44.  * take a moment or two to capture a frame, render it, and then
  45.  * save it to an animation.
  46.  */
  47. RequestNumber '"Time Lapse Interval (Seconds):"' 0 600 10
  48. IF rc ~= 0 THEN EXIT
  49. lapse = result
  50.  
  51. /*
  52.  * Get output animation filename.
  53.  */
  54. RequestFile '"Output Animation Filename:"'
  55. IF rc ~= 0 THEN EXIT
  56. output = result
  57.  
  58. IF EXISTS(output) THEN DO
  59.    RequestResponse 'Output animation exists.  Overwrite?'
  60.    IF rc ~= 0 THEN EXIT
  61.    ADDRESS COMMAND 'c:Delete >NIL:' output
  62.    END
  63.  
  64. /*
  65.  * Now loop until the user aborts the script.
  66.  */
  67. i = 1
  68. DO FOREVER
  69.  
  70.    Message 'Frame' i
  71.    i = i + 1
  72.  
  73.    Scanner Grab
  74.    SavePreviewAs ANIM '"'output'"' Keep
  75.  
  76.    IF lapse ~= 0 THEN ADDRESS COMMAND 'c:Wait' lapse
  77.  
  78.    END
  79.  
  80. BREAK_C:
  81.  
  82. Message 'Closing Animation'
  83. SavePreviewAs ANIM '"'output'"' Close
  84.  
  85. /*
  86.  * Restore the old preview.
  87.  */
  88. IF oldpreview ~= 'Amiga' THEN DO
  89.    SetPreview oldpreview
  90.    END
  91.  
  92. EXIT
  93.